package com.example.houseitemmanagebackend.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 消息实体类
 */
@Data
@TableName("messages")
public class Message {

    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 消息类型：notification(通知), activity(活动记录)
     */
    private String messageType;

    /**
     * 消息标题
     */
    private String title;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 子类型：通知(system,inventory,expiry,updates)或活动(create,update,delete,move)
     */
    private String subType;

    /**
     * 创建/操作时间
     */
    private LocalDateTime createTime;

    /**
     * 接收用户ID(通知)或操作用户ID(活动)
     */
    private Integer userId;

    /**
     * 操作用户ID(用于通知时记录谁触发的通知)
     */
    private Integer sourceUserId;

    /**
     * 操作用户名称(活动记录使用)
     */
    private String userName;

    /**
     * 位置ID
     */
    private Integer locationId;

    /**
     * 位置名称(活动记录使用)
     */
    private String locationName;

    /**
     * 具体位置名称(活动记录使用)
     */
    private String specificLocation;

    /**
     * 物品ID
     */
    private Long itemId;

    /**
     * 物品名称(活动记录使用)
     */
    private String itemName;

    /**
     * 是否已读：0未读，1已读(仅通知使用)
     */
    private Integer isRead;


    /**
     * 优先级：0普通，1重要，2紧急(仅通知使用)
     */
    private Integer priority;
}